Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec

ABSTRACT

A method and system for reduction of quantization-induced block-discontinuities arising from lossy compression and decompression of continuous signals, especially audio signals. One embodiment encompasses a general purpose, ultra-low latency, efficient audio codec algorithm. More particularly, the invention includes a method and apparatus for compression and decompression of audio signals using a novel boundary analysis and synthesis framework to substantially reduce quantization-induced frame or block discontinuity; a novel adaptive cosine packet transform (ACPT) as the transform of choice to effectively capture the input audio characteristics; a signal-residue classifier to separate the strong signal clusters from the noise and weak signal components (collectively called residue); an adaptive sparse vector quantization (ASVQ) algorithm for signal components; a stochastic noise model for the residue; and an associated rate control algorithm. The invention further includes corresponding computer program implementations of these and other algorithms.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.13/191,496 filed Jul. 27, 2011, which is a division of U.S. applicationSer. No. 12/197,645 filed Aug. 25, 2008, which is now issued as U.S.Pat. No. 8,010,371, which is a division of U.S. application Ser. No.11/609,081 filed Dec. 11, 2006, which is now issued as U.S. Pat. No.7,418,395, which is a division of U.S. application Ser. No. 11/075,440filed Mar. 9, 2005, which is now issued as U.S. Pat. No. 7,181,403,which is a division of U.S. application Ser. No. 10/061,310 filed Feb.4, 2002, which is now issued as U.S. Pat. No. 6,885,993, which is adivision of U.S. application Ser. No. 09/321,488, filed May 27, 1999which is now issued as U.S. Pat. No. 6,370,502, each of which are herebyincorporated by reference in their entirety.

TECHNICAL FIELD

This invention relates to compression and decompression of continuoussignals, and more particularly to a method and system for reduction ofquantization-induced block-discontinuities arising from lossycompression and decompression of continuous signals, especially audiosignals.

BACKGROUND

A variety of audio compression techniques have been developed totransmit audio signals in constrained bandwidth channels and store suchsignals on media with limited storage capacity. For general purposeaudio compression, no assumptions can be made about the source orcharacteristics of the sound. Thus, compression/decompression algorithmsmust be general enough to deal with the arbitrary nature of audiosignals, which in turn poses a substantial constraint on viableapproaches. In this document, the term “audio” refers to a signal thatcan be any sound in general, such as music of any type, speech, and amixture of music and speech. General audio compression thus differs fromspeech coding in one significant aspect: in speech coding where thesource is known a priori, model-based algorithms are practical.

Most approaches to audio compression can be broadly divided into twomajor categories: time and transform domain quantization. Thecharacteristics of the transform domain are defined by the reversibletransformations employed. When a transform such as the fast Fouriertransform (FFT), discrete cosine transform (DCT), or modified discretecosine transform (MDCT) is used, the transform domain is equivalent tothe frequency domain. When transforms like wavelet transform (WT) orpacket transform (PT) are used, the transform domain represents amixture of time and frequency information.

Quantization is one of the most common and direct techniques to achievedata compression. There are two basic quantization types: scalar andvector. Scalar quantization encodes data points individually, whilevector quantization groups input data into vectors, each of which isencoded as a whole. Vector quantization typically searches a codebook (acollection of vectors) for the closest match to an input vector,yielding an output index. A dequantizer simply performs a table lookupin an identical codebook to reconstruct the original vector. Otherapproaches that do not involve codebooks are known, such as closed toform solutions.

A coder/decoder (“codec”) that complies with the MPEG-Audio standard(ISO/IEC 11172-3; 1993(E)) (here, simply “MPEG”) is an example of anapproach employing time-domain scalar quantization. In particular. MPEGemploys scalar quantization of the time-domain signal in individualsubbands, while bit allocation in the scalar quantizer is based on apsychoacoustic model, which is implemented separately in the frequencydomain (dual-path approach).

It is well known that scalar quantization is not optimal with respect torate/distortion tradeoffs. Scalar quantization cannot exploitcorrelations among adjacent data points and thus scalar quantizationgenerally yields higher distortion levels for a given bit rate. Toreduce distortion, more bits must be used. Thus, time-domain scalarquantization limits the degree of compression, resulting in higherbit-rates.

Vector quantization schemes usually can achieve far better compressionratios than scalar quantization at a given distortion level. However,the human auditory system is sensitive to the distortion associated withzeroing even a single time-domain sample. This phenomenon makes directapplication of traditional vector quantization techniques on atime-domain audio signal an unattractive proposition, since vectorquantization at the rate of 1 bit per sample or lower often leads tozeroing of some vector components (that is, time-domain samples).

These limitations of time-domain-based approaches may lead one toconclude that a frequency domain-based (or more generally, a transformdomain-based) approach may be a better alternative in the context ofvector quantization for audio compression. However, there is asignificant difficulty that needs to be resolved in non-time-domainquantization based audio compression. The input signal is continuous,with no practical limits on the total time duration. It is thusnecessary to encode the audio signal in a piecewise manner. Each pieceis called an audio encode or decode block or frame. Performingquantization in the frequency domain on a per frame basis generallyleads to discontinuities at the frame boundaries. Such discontinuitiesyield objectionable audible artifacts (“clicks” and “pops”). One remedyto this discontinuity problem is to use overlapped frames, which resultsin proportionately lower compression ratios and higher computationalcomplexity. A more popular approach is to use critically sampled subbandfilter banks, which employ a history buffer that maintains continuity atframe boundaries, but at a cost of latency in the codec-reconstructedaudio signal. The long history buffer may also lead to inferiorreconstructed transient response, resulting in audible artifacts.Another class of approaches enforces boundary conditions as constraintsin audio encode and decode processes. The formal and rigorousmathematical treatments of the boundary condition constraint-basedapproaches generally involve intensive computation, which tends to beimpractical for real-time applications.

The inventors have determined that it would be desirable to provide anaudio compression technique suitable for real-time applications whilehaving reduced computational complexity. The technique should providelow bit-rate full bandwidth compression (about 1-bit per sample) ofmusic and speech, while being applicable to higher bit-rate audiocompression. The present invention provides such a technique.

SUMMARY

The invention includes a method and system for minimization ofquantization-induced block-discontinuities arising from lossycompression and decompression of continuous signals, especially audiosignals. In one embodiment, the invention includes a general purpose,ultra-low latency audio codec algorithm.

In one aspect, the invention includes: a method and apparatus forcompression and decompression of audio signals using a novel boundaryanalysis and synthesis framework to substantially reducequantization-induced frame or block-discontinuity; a novel adaptivecosine packet transform (ACPT) as the transform of choice to effectivelycapture the input audio characteristics; a signal-residue classifier toseparate the strong signal clusters from the noise and weak signalcomponents (collectively called residue); an adaptive sparse vectorQuantization (ASVQ) algorithm for signal components; a stochastic noisemodel for the residue; and an associated rate control algorithm. Thisinvention also involves a general purpose framework that substantiallyreduces the quantization-induced block-discontinuity in lossy datacompression involving any continuous data.

The ACPT algorithm dynamically adapts to the instantaneous changes inthe audio signal from frame to frame, resulting in efficient signalmodeling that leads to a high degree of data compression. Subsequently,a signal/residue classifier is employed to separate the strong signalclusters from the residue. The signal clusters are encoded as a specialtype of adaptive sparse vector quantization. The residue is modeled andencoded as bands of stochastic noise.

More particularly, in one aspect, the invention includes a zero-latencymethod for reducing quantization-induced block-discontinuities ofcontinuous data formatted into a plurality of time-domain blocks havingboundaries, including performing a first quantization of each block andgenerating first quantization indices indicative of such firstquantization; determining a quantization error for each block;performing a second quantization of any quantization error arising nearthe boundaries of each block from such first quantization and generatingsecond quantization indices indicative of such second quantization; andencoding the first and second quantization indices and formatting suchencoded indices as an output bit-stream.

In another aspect, the invention includes a low-latency method forreducing quantization-induced block-discontinuities of continuous dataformatted into a plurality of time-domain blocks having boundaries,including forming an overlapping time-domain block by prepending a smallfraction of a previous time-domain block to a current time-domain block;performing a reversible transform on each overlapping time-domain block,so as to yield energy concentration in the transform domain; quantizingeach reversibly transformed block and generating quantization indicesindicative of such quantization; encoding the quantization indices foreach quantized block as an encoded block, and outputting each encodedblock as a bit-stream; decoding each encoded block into quantizationindices; generating a quantized transform-domain block from thequantization indices; inversely transforming each quantizedtransform-domain block into an overlapping time-domain block; excludingdata from regions near the boundary of each overlapping time-domainblock and reconstructing an initial output data block from the remainingdata of such overlapping time-domain block; interpolating boundary databetween adjacent overlapping time-domain blocks; and prepending theinterpolated boundary data with the initial output data block togenerate a final output data block.

The invention also includes corresponding methods for decompressing abitstream representing an input signal compressed in this manner,particularly audio data. The invention further includes correspondingcomputer program implementations of these and other algorithms.

Advantages of the invention include:

-   -   A novel block-discontinuity minimization framework that allows        for flexible and dynamic signal or data modeling;    -   A general purpose and highly scalable audio compression        technique;    -   High data compression ratio/lower bit-rate, characteristics well        suited for applications like real-time or non-real-time audio        transmission over the Internet with limited connection        bandwidth;    -   Ultra-low to zero coding latency, ideal for interactive        real-time applications;    -   Ultra-low bit-rate compression of certain types of audio;    -   Low computational complexity.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the invention will be apparent from thedescription and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIGS. 1A-1C are waveform diagrams for a data block derived from acontinuous data stream. FIG. 1A shows a sine wave before quantization.FIG. 1B shows the sine wave of FIG. 1A after quantization. FIG. 1C showsthat the quantization error or residue (and thus energy concentration)substantially increases near the boundaries of the block.

FIG. 2 is a block diagram of a preferred general purpose audio encodingsystem in accordance with the invention.

FIG. 3 is a block diagram of a preferred general purpose audio decodingsystem in accordance with the invention.

FIG. 4 illustrates the boundary analysis and synthesis aspects of theinvention.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION General Concepts

The following subsections describe basic concepts on which the inventionis based, and characteristics of the preferred embodiment.

Framework for Reduction of Quantization-Induced Block-Discontinuity.

When encoding a continuous signal in a frame or block-wise manner in atransform domain, block-independent application of lossy quantization ofthe transform coefficients will result in discontinuity at the blockboundary. This problem is closely related to the so-called “Gibbsleakage” problem. Consider the case where the quantization applied ineach data block is to reconstruct the original signal waveform, incontrast to quantization that reproduces the original signalcharacteristics, such as its frequency content. We define thequantization error, or “residue”, in a data block to be the originalsignal minus the reconstructed signal. If the quantization in questionis lossless, then the residue is zero for each block, and nodiscontinuity results (we always assume the original signal iscontinuous). However, in the case of lossy quantization, the residue isnon-zero, and due to the block-independent application of thequantization, the residue will not match at the block boundaries: hence,block-discontinuity will result in the reconstructed signal. If thequantization error is relatively small when compared to the originalsignal strength, i.e. the reconstructed waveform approximates theoriginal signal within a data block, one interesting phenomenon arises:the residue energy tends to concentrate at both ends of the blockboundary. In other words, the Gibbs leakage energy tends to concentrateat the block boundaries. Certain windowing techniques can furtherenhance such residue energy concentration.

As an example of Gibbs leakage energy, FIGS. 1A-1C are waveform diagramsfor a data block derived from a continuous data stream. FIG. 1A shows asine wave before quantization. FIG. 1B shows the sine wave of FIG. 1Aafter quantization. FIG. 1C shows that the quantization error or residue(and thus energy concentration) substantially increases near theboundaries of the block.

With this concept in mind, one aspect of the invention encompasses:

1. Optional use of a windowing technique to enhance the residue energyconcentration near the block boundaries. Preferred is a windowingfunction characterized by the identity function (i.e., notransformation) for most of a block, but with bell-shaped decays nearthe boundaries of a block (see FIG. 4, described below).

2. Use of dynamically adapted signal modeling to effectively capture thesignal characteristics within each block without regard to neighboringblocks.

3. Efficient quantization on the transform coefficients to approximatethe original waveform.

4. Use of one of two approaches near the block boundaries, where theresidue energy is concentrated, to substantially reduce the effects ofquantization error:

-   -   (1) Residue quantization: Application of rigorous time-domain        waveform quantization of the residue (i.e., the quantization        error near the boundaries of each frame). In essence, more bits        are used to define the boundaries by encoding the residue near        the block-boundaries. This approach is slightly less efficient        in coding but results in zero coding latency.    -   (2) Boundary exclusion and interpolation: During encoding,        overlapped data blocks with a small overlapped data region that        contains all the concentrated residue energy are used, resulting        in a small coding latency. During decoding, each reconstructed        block excludes the boundary regions where residue energy        concentrates, resulting in a minimized time-domain residue and        block-discontinuity. Boundary interpolation is then used to        further reduce the block-discontinuity.

5. Modeling the remaining residue energy as bands of stochastic noise,which provides the psychoacoustic masking for artifacts that may beintroduced in the signal modeling, and approximates the original noisefloor.

The characteristics and advantages of this procedural framework are thefollowing:

1. It applies to any transform-based (actually, any reversibleoperation-based) coding of an arbitrary continuous signal (including butnot limited to audio signals) employing quantization that approximatesthe original signal waveform.

2. Great flexibility, in that it allows for many different classes ofsolutions.

3. It allows for block-to-block adaptive change in transformation,resulting in potentially optimal signal modeling and transient fidelity.

4. It yields very low to zero coding latency since it does not rely on along history buffer to maintain the block continuity.

5. It is simple and low in computational complexity.

Application of Framework for Reduction of Quantization-InducedBlock-Discontinuity to Audio Compression.

An ideal audio compression algorithm may include the following features:

-   -   1. Flexible and dynamic signal modeling for coding efficiency;    -   2. Continuity preservation without introducing long coding        latency or compromising the transient fidelity;    -   3. Low computation complexity for real-time applications.

Traditional approaches to reducing quantization-inducedblock-discontinuities arising from lossy compression and decompressionof continuous signals typically rely on a long history buffer (e.g.,multiple frames) to maintain the boundary continuity at the expense ofcodec latency, transient fidelity, and coding efficiency. The transientresponse gets compromised due to the averaging or smearing effects of along history buffer. The coding efficiency is also reduced becausemaintenance of continuity through a long history buffer precludesadaptive signal modeling, which is necessary when dealing with thedynamic nature of arbitrary audio signals. The framework of the presentinvention offers a solution for coding of continuous data, particularlyaudio data, without such compromises. As stated in the last subsection,this framework is very flexible in nature, which allows for manypossible implementations of coding algorithms. Described below is anovel and practical general purpose, low-latency, and efficient audiocoding algorithm.

Adaptive Cosine Packet Transform (ACPT).

The (wavelet or cosine) packet transform (PT) is a well-studied subjectin the wavelet research community as well as in the data compressioncommunity. A wavelet transform (WT) results in transform coefficientsthat represent a mixture of time and frequency domain characteristics.One characteristic of WTs is that it has mathematically compact support.In other words, the wavelet has basis functions that are non-vanishingonly in a finite region, in contrast to sine waves that extend toinfinity. The advantage of such compact support is that WTs can capturemore efficiently the characteristics of a transient signal impulse thanFFTs or DCTs can. PTs have the further advantage that they adapt to theinput signal time scale through best basis analysis (by minimizingcertain parameters like entropy), yielding even more efficientrepresentation of a transient signal event. Although one can certainlyuse WTs or PTs as the transform of choice in the present audio codingframework, it is the inventors intention to present ACPT as thepreferred transform for an audio codec. One advantage of using a cosinepacket transform (CPT) for audio coding is that it can efficientlycapture transient signals, while also adapting to harmonic-like(sinusoidal-like) signals appropriately.

ACPTs are an extension to conventional CPTs that provide a number ofadvantages. In low bit-rate audio coding, coding efficiency is improvedby using longer audio coding frames (blocks). When a highly transientsignal is embedded in a longer coding frame. CPTs may not capture thefast time response. This is because, for example, in the best basisanalysis algorithm that minimizes entropy, entropy may not be the mostappropriate signature (nonlinear dependency on the signal normalizationfactor is one reason) for time scale adaptation under certain signalconditions. An ACPT provides an alternative by pre-splitting the longercoding frame into sub-frames through an adaptive switching mechanism,and then applying a CPT on the subsequent sub-frames. The “best basis”associated with ACPTs is called the extended best basis.

Signal and Residue Classifier (SRC).

To achieve low bit-rate compression (e.g., at 1-bit per sample orlower), it is beneficial to separate the strong signal componentcoefficients in the set of transform coefficients from the noise andvery weak signal component coefficients. For the purpose of thisdocument, the term “residue” is used to describe both noise and weaksignal components. A Signal and Residue Classifier (SRC) may beimplemented in different ways. One approach is to identify all thediscrete strong signal components from the residue, yielding a sparsevector signal coefficient frame vector, where subsequent adaptive sparsevector quantization (ASVQ) is used as the preferred quantizationmechanism. A second approach is based on one simple observation ofnatural signals: the strong signal component coefficients tend to beclustered. Therefore, this second approach would separate the strongsignal clusters from the contiguous residue coefficients. The subsequentquantization of the clustered signal vector can be regarded as a specialtype of ASVQ (global clustered sparse vector type). It has been shownthat the second approach generally yields higher coding efficiency sincesignal components are clustered, and thus fewer bits are required toencode their locations.

ASVQ.

As mentioned in the last section, ASVQ is the preferred quantizationmechanism for the strong signal components. For a discussion of ASVQ,please refer to allowed U.S. patent application Ser. No. 08/958,567 byShuwu Wu and John Mantegna, entitled “Audio Codec using Adaptive SparseVector Quantization with Subband Vector Classification”, filed Oct. 28,1997, which is assigned to the assignee of the present invention andhereby incorporated by reference.

In addition to ASVQ, the preferred embodiment employs a mechanism toprovide bit-allocation that is appropriate for the block-discontinuityminimization. This simple yet effective bit-allocation also allows forshort-term bit-rate prediction, which proves to be useful in therate-control algorithm.

Stochastic Noise Model.

While the strong signal components are coded more rigorously using ASVQ,the remaining residue is treated differently in the preferredembodiment. First, the extended best basis from applying an ACPT is usedto divide the coding frame into residue sub-frames. Within each residuesub-frame, the residue is then modeled as bands of stochastic noise. Twoapproaches may be used:

1. One approach simply calculates the residue amplitude or energy ineach frequency band. Then random DCT coefficients are generated in eachband to match the original residue energy. The inverse DCT is performedon the combined DCT coefficients to yield a time-domain residue signal.

2. A second approach is rooted in time-domain filter bank approach.Again the residue energy is calculated and quantized. On reconstruction,a predetermined bank of filters is used to generate the residue signalfor each frequency band. The input to these filters is white noise, andthe output is gain-adjusted to match the original residue energy. Thisapproach offers gain interpolation for each residue band between residueframes, yielding continuous residue energy.

Rate Control Algorithm.

Another aspect of the invention is the application of rate control tothe preferred codec. The rate control mechanism is employed in theencoder to better target the desired range of bit-rates. The ratecontrol mechanism operates as a feedback loop to the SRC block and theASVQ. The preferred rate control mechanism uses a linear model topredict the short-term bit-rate associated with the current codingframe. It also calculates the long-term bit-rate. Both the short- andlong-term bit-rates are then used to select appropriate SRC and ASVQcontrol parameters. This rate control mechanism offers a number ofbenefits, including reduced complexity in computation complexity withoutapplying quantization and in situ adaptation to transient signals.

Flexibility.

As discussed above, the framework for minimization ofquantization-induced block-discontinuity allows for dynamic andarbitrary reversible transform-based signal modeling. This providesflexibility for dynamic switching among different signal models and thepotential to produce near-optimal coding. This advantageous feature issimply not available in the traditional MPEG I or MPEG II audio codecsor in the advanced audio codec (AAC). (For a detailed description ofAAC, please see the References section below). This is important due tothe dynamic and arbitrary nature of audio signals. The preferred audiocodec of the invention is a general purpose audio codec that applies toall music, sounds, and speech. Further, the codec's inherent low latencyis particularly useful in the coding of short (on the order of onesecond) sound effects.

Scalability.

The preferred audio coding algorithm of the invention is also veryscalable in the sense that it can produce low bit-rate (about 1bit/sample) full bandwidth audio compression at sampling rates rangingfrom 8 kHz to 44 kHz with only minor adjustments in coding parameters.This algorithm can also be extended to high quality audio and stereocompression.

Audio Encoding/Decoding.

The preferred audio encoding and decoding embodiments of the inventionform an audio coding and decoding system that achieves audio compressionat variable low bit-rates in the neighborhood of 0.5 to 1.2 bits persample. This audio compression system applies to both low bit-ratecoding and high quality transparent coding and audio reproduction at ahigher rate. The following sections separately describe preferredencoder and decoder embodiments.

Audio Encoding

FIG. 2 is a block diagram of a preferred general purpose audio encodingsystem in accordance with the invention. The preferred audio encodingsystem may be implemented in software or hardware, and comprises 8 majorfunctional blocks, 100-114, which are described below.

Boundary Analysis 100.

Excluding any signal pre-processing that converts input audio into theinternal codec sampling frequency and pulse code modulation (PCM)representation, boundary analysis 100 constitutes the first functionalblock in the general purpose audio encoder. As discussed above, eitherof two approaches to reduction of quantization-inducedblock-discontinuities may be applied. The first approach (residuequantization) yields zero latency at a cost of requiring encoding of theresidue waveform near the block boundaries (“near” typically being about1/16 of the block size). The second approach (boundary exclusion andinterpolation) introduces a very small latency, but has better codingefficiency because it avoids the need to encode the residue near theblock boundaries, where most of the residue energy concentrates. Giventhe very small latency that this second approach introduces in the audiocoding relative to a state-of-the-art MPEG AAC codec (where the latencyis multiple frames vs. a fraction of a frame for the preferred codec ofthe invention), it is preferable to use the second approach for bettercoding efficiency, unless zero latency is absolutely required.

Although the two different approaches have an impact on the subsequentvector quantization block, the first approach can simply be viewed as aspecial case of the second approach as far as the boundary analysisfunction 100 and synthesis function 212 (see FIG. 3) are concerned. So adescription of the second approach suffices to describe both approaches.

FIG. 4 illustrates the boundary analysis and synthesis aspects of theinvention. The following technique is illustrated in the top (Encode)portion of FIG. 4. An audio coding (analysis or synthesis) frameconsists of a sufficient (should be no less than 256, preferably 1024 or2048) number of samples, Ns. In general, larger Ns values lead to highercoding efficiency, but at a risk of losing fast transient responsefidelity. An analysis history buffer (HB_(E)) of size sHB_(E)=R_(E)*Nssamples from the previous coding frame is kept in the encoder, whereR_(E) is a small fraction (typically set to 1/16 or ⅛ of the block size)to cover regions near the block boundaries that have high residueenergy. During the encoding of the current frame sInput=(1−R_(E))*Nssamples are taken in and concatenated with the samples in HB_(E) to forma complete analysis frame. In the decoder, a similar synthesis historybuffer (HB_(D)) is also kept for boundary interpolation purposes, asdescribed in a later section. The size of HB_(D) issHB_(D)=R_(D)*sHB_(E)=R_(D)*R_(E)*Ns samples, where R_(D) is a fraction,typically set to ¼.

A window function is created during audio codec initialization to havethe following properties: (1) at the center region of Ns−sHB_(E)+sHE_(D)samples in size, the window function equals unity (i.e., the identityfunction); and (2) the remaining equally divided left and right edgestypically equate to the left and right half of a bell-shape curve,respectively. A typical candidate bell-shape curve could be a Hamming orKaiser-Bessel window function. This window function is then applied onthe analysis frame samples. The analysis history buffer (HB_(E)) is thenupdated by the last sHB_(E) samples from the current analysis frame.This completes the boundary analysis.

When the parameter R_(E) is set to zero, this analysis reduces to thefirst approach mentioned above. Therefore, residue quantization can beviewed as a special case of boundary exclusion and interpolation.

Normalization 102. An optional normalization function 102 in the generalpurpose audio codec performs a normalization of the windowed outputsignal from the boundary analysis block. In the normalization function102, the average time-domain signal amplitude over the entire coding,frame (Ns samples) is calculated. Then a scalar quantization of theaverage amplitude is performed. The quantized value is used to normalizethe input time-domain signal. The purpose of this normalization is toreduce the signal dynamic range, which will result in bit savings duringthe later quantization stage. This normalization is performed afterboundary analysis and in the time-domain for the following reasons: (1)the boundary matching needs to be performed on the original signal inthe time-domain where the signal is continuous; and (2) it is preferablefor the scalar quantization table to be independent of the subsequenttransform, and thus it must be performed before the transform. Thescalar normalization factor is later encoded as part of the encoding ofthe audio signal.

Transform 104.

The transform function 104 transforms each time-domain block to atransform domain block comprising a plurality of coefficients. In thepreferred embodiment, the transform algorithm is an adaptive cosinepacket transform (ACPT). ACPT is an extension or generalization of theconventional cosine packet transform (CPT). CPT consists of cosinepacket analysis (forward transform) and synthesis (inverse transform).The following describes the steps of performing cosine packet analysisin the preferred embodiment. Note: Mathwork's Matlab notation is used inthe pseudo-codes throughout this description, where: 1:m implies anarray of numbers with starting value of 1, increment of 1, and endingvalue of m; and .*, ./, and .̂2 indicate the point-wise multiply, divide,and square operations, respectively.

CPT:

Let N be the number of sample points in the cosine packet transform. Dbe the depth of the finest time splitting, and Nc be the number ofsamples at the finest time splitting (Nc=N/2̂D, must be an integer).Perform the following:

-   -   1. Pre-calculate bell window function by (interior to domain)        and bm (exterior to domain):

m = Nc/2; x = 0.5 * [1 + (0.5:m−0.5) / m]; if USE_TRIVIAL_BELL_WINDOW bp= sqrt(x); elseif USE_SINE_BELL_WINDOW bp = sin(pi / 2 * x); end bm =sqrt(1 − bp.{circumflex over ( )}2).

-   -   2. Calculate cosine packet transform table, pkt, for input        N-point data x:

pkt = zeros(N,D+1); for d = D:−1:0, nP = 2{circumflex over ( )}d; Nj = N/ nP; for b = 0:nP−1, ind = b*Nj + (1:Nj); ind1 = 1:m; ind2 = Nj+1 −ind1; if b == 0 xc = x(ind); xl = zeros(Nj,1); xl(ind2) = xc(ind1) .*(1−bp) ./ bm; else xl = xc; xc = xr; end if b < nP−1, xr = x(Nj+ind);else xr = zeros(Nj, 1); xr(ind1) = −xc(ind2) .* (1−bp) ./ bm; end xlcr =xc; xlcr(ind1) = bp .* xlcr(ind1) + bm .* xl(ind2); xlcr(ind2) = bp .*xlcr(ind2) − bm .* xr(ind1); c = sqrt(2/Nj) * dct4(xlcr); pkt(ind, d+1)= c; end end

-   -   -   The function dct4 is the type IV discrete cosine transform.            When Nc is a power of 2, a fast dct4 transform can be used.

    -   3. Build the statistics tree, stree, for the subsequent best        basis analysis. The following pseudo-code demonstrates only the        most common case where the basis selection is based on the        entropy of the packet transform coefficients:

stree = zeros(2{circumflex over ( )}(D+1)−1,1); pktN_1 = norm(pkt(:,1));if pktN_1 ~= 0, pktN_1 = 1 / pktN_1; else pktN_1 = 1; end i = 0; for d =0:D, np = 2{circumflex over ( )}d; Nj = N / nP: for b = 0:nP−1, i = i+1;ind = b * Nj + (1:Nj); p = (pkt(ind, d+1) * pktN_1) .{circumflex over( )} 2; stree(i) = − sum(p .* log(p+eps));  end; end;

-   -   4. Perform the best basis analysis to determine the best basis        tree, btree:

btree =zeros(2{circumflex over ( )}(D+1)−1, 1); vtree = stree; for d =D−1:−1:0, nP = 2{circumflex over ( )}d; for b = 0:nP−1, i = nP +b;vparent = stree(i); vchild = vtree(2*i) + vtree(2*i+1); if vparent <=vchild, btree(i) = 0; (terminating node) vtree(i) = vparent; elsebtree(i) = 1; (non-terminating node) vtree(i) = vchild; end end endentropy = vtree(1). (total entropy for cosine packet transformcoefficients)

-   -   5. Determine (optimal) CPT coefficients, opkt, from packet        transform table and the best basis tree:

opkt = zeros(N, 1); stack = zeros(2{circumflex over ( )}(D+1), 2); k =1; while (k > 0), d = stack(k, 1); b = stack(k, 2); k = k−1; nP =2{circumflex over ( )}d; i = nP + b; if btree(i) == 0, Nj = N / nP; ind= b * Nj + (1:Nj); opkt(ind) = pkt(ind, d+1); else k = k+1; stack(k, :)= [d+1 2*b]; k = k+1; stack(k, :) = [d+1 2*b+1]; end end

For a detailed description of wavelet transforms, packet transforms, andcosine packet transforms, see the References section below.

As mentioned above, the best basis selection algorithms offered by theconventional cosine packet transform sometimes fail to recognize thevery fast (relatively speaking) time response inside a transform frame.We determined that it is necessary to generalize the cosine packettransform to what we call the “adaptive cosine packet transform”, ACPT.The basic idea behind ACPT is to employ an independent adaptiveswitching mechanism, on a frame by frame basis, to determine whether apre-splitting of the CPT frame at a time splitting level of D1 isrequired, where 0<=D1<=D. If the pre-splitting is not required, ACPT isalmost to reduced to CPT with the exception that the maximum depth oftime splitting is D2 for ACPTs' best basis analysis, where D1<=D2<=D.

The purpose of introducing D2 is to provide a means to stop the basissplitting at a point (D2) which could be smaller than the maximumallowed value D, thus de-coupling the link between the size of the edgecorrection region of ACPT and the finest splitting of best basis. Ifpre-splitting is required, then the best basis analysis is carried outfor each of the pre-split sub-frames, yielding an extended best basistree (a 2-D array, instead of the conventional 1-D array). Since theonly difference between ACPT and CPT is to allow for more flexible bestbasis selection, which we have found to be very helpful in the contextof low bit-rate audio coding, ACPT is a reversible transform like CPT.

ACPT:

The preferred ACPT algorithm follows:

-   -   1. Pre-calculate the bell window functions, by and bm, as in        Step 1 of the CPT algorithm above.    -   2. Calculate the cosine packet transform table just for the time        splitting level of D1; pkt(:,D1+1), as in CPT Step 2, but only        for d=D1 (instead of d=D:−1:0).    -   3. Perform an adaptive switching algorithm to determine whether        a pre-split at level D1 is needed for the current ACPT frame.        Many algorithms are available for such adaptive switching. One        can use a time-domain based algorithm, where the adaptive        switching can be carried out before Step 2. Another class of        approaches would be to use the packet transform table        coefficients at level D1. One candidate in this class of        approaches is to calculate the entropy of the transform        coefficients for each of the Pre-split sub-frames individually.        Then, an entropy-based switching criterion can be used. Other        candidates include computing some transient signature parameters        from the available transform coefficients from Step 2, and then        employing some appropriate criteria. The following describes        only a preferred implementation:

nP1 = 2{circumflex over ( )}D1; Nj = N / nP1; entropy = zeros(1, nP1);amplitude = zeros(1, nP1); index = zeros(1, nP1); for i = 0:nP1−1, ind =i*Nj + (1:Nj); ci = pkt(ind, D1+1); norm_1 = norm(ci); amplitude(i) =norm_1; if norm_1 ~= 0, norm_1 = 1 / norm_1; else norm_1 = 1 end p =(norm_1*x) .{circumflex over ( )}2; entropy(i+1) = - sum(p . *log(p+eps)); ind2 = quickSort(abs(ci)); (quick sort index by abs(ci) inascending order) ind2 = ind2(N+1 − (1:Nt)); (keep Nt indices associatedwith Nt largest abs(ci)) index(i) = std(ind2); (standard deviation ofind2, spectrum spread) end if mean(amplitude) > 0.0, amplitude =amplitude / mean(amplitude); end mEntropy = mean(entropy); mIndex =mean(index); if max(amp) − min(amp) > thr1 | mIndex < thr2 * mEntropy,PRE-SPLIT_REQUIRED else PRE-SPLIT_NOT_REQUIRED end;

-   -   -   where: Nt is a threshold number which is typically set to a            fraction of Nj (e.g., Nj/8). The thr1 and thr2 are two            empirically determined threshold values. The first criterion            detects the transient signal amplitude variation, the second            detects the transform coefficients (similar to the DCT            coefficients within each sub-frame) or spectrum spread per            unit of entropy value.

    -   4. Calculate pkt at the required levels depending on pre-split        decision:

if PRE-SPLIT_REQUIRED CALCULATE pkt for levels = [D1+1:D2]; else if D1 <D0, CALCULATE pkt for levels = [0:D1−1 D1+1:D0]; elseif D1 == D0,CALCULATE pkt for levels = [0:D0−1]; else CALCULATE pkt for levels =[0:D0]; end end;

-   -   -   where D0 and D2 are the maximum depths for time-splitting            PRE-SPLIT_REQUIRED and PRE-SPLIT_NOT_REQUIRED, respectively.

    -   5. Build statistics tree, stree, as in CPT Step 3, for only the        required levels.

    -   6. Split the statistics tree, stree, into the extended        statistics tree, strees, which is generally a 2-D array. Each        1-D sub-array is the statistics tree for one sub-frame. For the        PRE-SPLIT_REQUIRED case, there are 2̂D1 such sub-arrays. For the        PRE-SPLIT_NOT_REQUIRED case, there is no splitting (or just one        sub-frame), so there is only one sub-array, i.e., strees becomes        a 1-D array. The details are as follows:

if PRE-SPLIT_NOT_REQUIRED. strees = stree; else nP1 = 2{circumflex over( )}D1 ; strees = zeros(2{circumflex over ( )}(D2−D1+1)−1. nP1); index =nP1; d2 = D2−D1; for d = 0:d2, for i = 1:nP1, for j = 2{circumflex over( )}d−1 + (1:2{circumflex over ( )}d), strees(j, i) = stree(index);index = index+1; end end end end

-   -   7. Perform best basis analysis to determine the extended best        basis tree, btrees, for each of the sub-frames the same way as        in CPT Step 4.    -   8. Determine the optimal transform coefficients, opkt, from the        extended best basis tree. This involves determining opkt for        each of the sub-frames. The algorithm for each sub-frame is the        same as in CPT Step 5.

Because ACPT computes the transform table coefficients only at therequired time-splitting levels, ACPT is generally less computationallycomplex than CPT.

The extended best basis tree (2-D array) can be considered an array ofindividual best basis trees (1-D) for each sub-frame. A lossless(optimal) variable length technique for coding a best basis tree ispreferred:

d = maximum depth of time-splitting for the best basis tree in questioncode = zeros(1,2{circumflex over ( )}d−1); code(1) = btree(1); index =1; for i = 0:d−2, nP = 2{circumflex over ( )}i; for b = 0:nP−1, ifbtree(nP+b) == 1, code(index + (1:2)) = btree(2*(nP+b) + (0:1)); index =index + 2; end end end code = code(1:i); (quantized bit-stream, i bitsused)

Signal and Residue Classifier 106.

The signal and residue classifier (SRC) function 106 partitions thecoefficients of each time-domain block into signal coefficients andresidue coefficients. More particularly, the SRC function 106 separatesstrong input signal components (called signal) from noise and weaksignal components (collectively called residue). As discussed above,there are two preferred approaches for SRC. In both cases, ASVQ is anappropriate technique for subsequent quantization of the signal. Thefollowing describes the second approach that identifies signal andresidue in clusters:

-   -   1. Sort index in ascending order of the absolute value of the        ACPT coefficients, opkt:        -   ax=abs(opkt);        -   order=quickSort(ax);    -   1. Calculate global noise floor, of:        -   gnf=a×(N−Nt);        -   where Nt is a threshold number which is typically set to a            fraction of N.    -   3. Determine signal clusters by calculating zone indices, zone,        in the first pass:

zone = zeros(2, N/2); (assuming no more than N/2 signal clusters) zc =0; i = 1; inS = 0; sc = 0; while i <= N, if ~inS & ax(i) <= gnf, elseif~inS & ax(i) > gnf, zc = zc+1; inS = 1; sc = 0; zone(1, zc) = i; (startindex of a signal cluster) elseif inS & ax(i) <= gnf, if sc >= nt, (ntis a threshold number, typically set to 5) zone(2, zc) = i; inS = 0; sc= 0; else sc = sc + 1; end; elseif inS & ax(i) > gnf sc = 0; end i = i +1; end; if zc > 0 & zone(2,zc) == 0, zone(2, zc) = N; end; zone =zone(:, 1:zc); for i = 1:zc, indH = zone(2, i); while zc(indH) <= gnf,indH = indH − 1; end; zone (2, i) = indH; end;

-   -   4. Determine the signal clusters in the second pass by using a        local noise floor lnf; sRR is the size of the neighboring        residue region for local noise floor estimation purposes,        typically set to a small fraction of N (e.g., N/32):

zone0 = zone(2, :); for i = 1:zc, indL = max(1, zone(1,i)−sRR); indH =min(N, zone(2,i)−sRR); index = indL:indH; index = indL−1 +find(ax(index) <= gnf); if length(index) == 0, lnf = gnf; else lnf =ratio * mean(ax(index));(ratio is threshold number, typically set to4.0) end; if lnf < gnf, indL = zone(1, i); indH = zone(2, i); if i = 1,indl = 1; else indl = zone0(i−1); end if i == zc, indh = N; else indh =zone0(i+1); end while indL > indl & ax(indL) > lnf, indL = indL − 1;end; while indH < indh & ax(indH) > lnf, indH = indH + 1; end; zone(1,i) = indL; zone(2, i) = indH; elseif lnf > gnf, indL = zone(1, i); indH= zone(2, i); while indL <= indH & ax(indL) <= lnf, indL = indL + 1;end; if indL > indH, zone(1, i) = 0; zone(2, i) = 0; else while indH >=indL & ax(indH) <= lnf, indH = indH − 1; end if indH < indL, zone(1, i)= 0; zone(2, i) = 0; else zone(1, i) = indL; zone(2, i) = indH; end endend end

-   -   5. Remove the weak signal components:

for i = 1:zc, indL = zone(1, i); if indL > 0; indH = zone(2, i); index =indL:indH; if max(ax(index)) > Athr, (Athr typically set to 2) whileax(indL) < Xthr, (Xthr typically set to 0.2) indL = indL+1; end whileax(indH) < Xthr, indH = indH+1; end zone(1, i) = indL; zone(2, i) =indH; end end end

-   -   6. Remove the residue components:        -   index=find(zone(1,:)>0);        -   zone=zone(:, index);        -   zc=size(zone, 2);    -   7. Merge signal clusters that are close neighbors:

for i = 2:zc, indL = zone(1, i); if indL > 0 & indL − zone(2, ii−1) <minZS, zone(1, i) = zone(1, i−1); zone(1, i−1) = 0; zone(2, i−1) = 0;end end

-   -   -   where minZS is the minimum zone size, which is empirically            determined to minimize the required quantization bits for            coding the signal zone indices and signal vectors.

    -   8. Remove the residue components again, as in Step 6.

Quantization 108.

After the SRC 106 separates ACPT coefficients into signal and residuecomponents, the signal components are processed by a quantizationfunction 108. The preferred quantization for signal components isadaptive sparse vector quantization (ASVQ).

If one considers the signal clusters vector as the original ACPTcoefficients with the residue components set to zero, then a sparsevector results. As discussed in allowed U.S. patent application Ser. No.08/958,567 by Shuwu Wu and John Mantegna, entitled “Audio Codec usingAdaptive Sparse Vector Quantization with Subband Vector Classification”,filed Oct. 28, 1997, ASVQ is the preferred quantization scheme for suchsparse vectors. In the case where the signal components are in clusters,type IV quantization in ASVQ applies. An improvement to ASVQ type IVquantization can be accomplished in cases where all signal componentsare contained in a number of continuous clusters. In such cases, it issufficient to only encode all the start and end indices for each of theclusters when encoding the element location index (ELI). Therefore, forthe purpose of ELI quantization, instead of encoding the original sparsevector, a modified sparse vector (a super-sparse vector) with onlynon-zero elements at the start and end points of each signal cluster isencoded. This results in very significant bit savings. That is one ofthe main reasons it is advantageous to consider signal clusters insteadof discrete components. For a detailed description of Type IVquantization and quantization of the ELI, please refer to the patentapplication referenced above. Of course, one can certainly use otherlossless techniques, such as run length coding with Huffman codes, toencode the ELI.

ASVQ supports variable bit allocation, which allows various types ofvectors to be coded differently in a manner that reduces psychoacousticartifacts. In the preferred audio codec, a simple bit allocation schemeis implemented to rigorously quantize the strongest signal components.Such a fine quantization is required in the preferred framework due tothe block-discontinuity minimization mechanism. In addition, thevariable bit allocation enables different quality settings for thecodec.

Stochastic Noise Analysis 110.

After the SRC 106 separates ACPT coefficients into signal and residuecomponents, the residue components, which are weak andpsychoacoustically less important, are modeled as stochastic noise inorder to achieve low bit-rate coding. The motivation behind such a modelis that, for residue components, it is more important to reconstructtheir energy levels correctly than to re-create their phase information.The stochastic noise model of the preferred embodiment follows:

-   -   1. Construct a residue vector by taking the ACPT coefficient        vector and setting all signal components to zero.    -   2. Perform adaptive cosine packet synthesis (see above) on the        residue vector to synthesize a time-domain residue signal.    -   3. Use the extended best basis tree. btrees, to split the        residue frame into several residue sub-frames of variable sizes.        The preferred algorithm is as follows:

join btrees to form a combined best basis tree, btree, as described inSection 5.12. Step 2 index = zeros(1, 2{circumflex over ( )}D); stack =zeros(2{circumflex over ( )}D+1, 2); k = 1; nSF = 0; (number of residuesub-frames) white k > 0, d = stack(k, 1); b = stack(k, 2); k = k − 1; nP= 2{circumflex over ( )}d; Nj = N / nP; i = nP + b; if btree(i) == 0,nSF = nSF + 1; index(nSF) = b * Nj; else k = k+1; stack(k, :) = [d+12*b]; k = k+1; stack(k, :) = [d+1 2*b+1]; end end; index = index(1:nSF);sort index in ascending order sSF = zeros(1, nSF); (sizes of residuesub-frames) sSF(1:nSF−1) = diff(index); sSF(nSF) = N − index(nSF);

-   -   4. Optionally, one may want to limit the maximum or minimum        sizes of residue sub-frames by further sub-splitting or merging        neighboring sub-frames for practical bit-allocation control.    -   5. Optionally, for each residue sub-frame, a DCT or FFT is        performed and the subsequent spectral coefficients are grouped        into a number of subbands. The sizes and number of subbands can        be variable and dynamically determined. A mean energy level then        would be calculated for each spectral subband. The subband        energy vector then could be encoded in either the linear or        logarithmic domain by an appropriate vector quantization        technique.

Rate Control 112.

Because the preferred audio codec is a general purpose algorithm that isdesigned to deal with arbitrary types of signals, it takes advantage ofspectral or temporal properties of an audio signal to reduce thebit-rate. This approach may lead to rates that are outside of thetargeted rate ranges (sometime rates are too low and sometimes rates arehigher than the desired, depending on the audio content). Accordingly, arate control function 112 is optionally applied to bring betteruniformity to the resulting bit-rates.

The preferred rate control mechanism operates as a feedback loop to theSRC 106 or quantization 108 functions. In particular, the preferredalgorithm dynamically modifies the SRC or ASVQ quantization parametersto better maintain a desired bit rate. The dynamic parametermodifications are driven by the desired short-term and long-term bitrates. The short-term bit rate can be defined as the “instantaneous”bit-rate associated with the current coding frame. The long-termbit-rate is defined as the average bit-rate over a large number or allof the previously coded frames. The preferred algorithm attempts totarget a desired short-term bit rate associated with the signalcoefficients through an iterative process. This desired bit rate isdetermined from the short-term bit rate for the current frame and theshort-term bit rate not associated with the signal coefficients of theprevious frame. The expected short-term bit rate associated with thesignal can be predicted based on a linear model:

Predicted=A(q(n))*S(c(m))+B(q(n)).  (1)

Here, A and B are functions of quantization related parameters,collectively represented as a. The variable a can take on values from alimited set of choices, represented by the variable n. An increase(decrease) in n leads to better (worse) quantization for the signalcoefficients. Here. S represents the percentage of the frame that isclassified as signal, and it is a function of the characteristics of thecurrent frame. S can take on values from a limited set of choices,represented by the variable m. An increase (decrease) in m leads to alarger (smaller) portion of the frame being classified as signal.

Thus, the rate control mechanism targets the desired long-term bit rateby predicting the short-term bit rate and using this prediction to guidethe selection of classification and to quantization related parametersassociated with the preferred audio codec. The use of this model topredict the short-term bit rate associated with the current frame offersthe following benefits:

-   -   1. Because the rate control is guided by characteristics of the        current frame, the rate control mechanism can react in situ to        transient signals.    -   2. Because the short-term bit rate is predicted without        performing quantization, reduced computational complexity        results.

The preferred implementation uses both the long-term bit rate and theshort-term bit rate to guide the encoder to better target a desired bitrate. The algorithm is activated under four conditions:

-   1. (LOW, LOW): The long-term bit rate is low and the short-term bit    rate is low.-   2. (LOW, HIGH): The long-term bit rate is low and the short-term bit    rate is high.-   3. (HIGH, LOW): The long-term bit rate is high and the short-term    bit rate is low.-   4. (HIGH, HIGH): The long-term bit rate is high and the short-term    bit rate is high.

The preferred implementation of the rate control mechanism is outlinedin the three-step procedure below. The four conditions differ in Step 3only. The implementation of Step 3 for cases 1 (LOW. LOW) and 4 (HIGH,HIGH) are given below. Case 2 (LOW, HIGH) and Case 4 (HIGH. HIGH) areidentical, with the exception that they have different values for theupper limit of the target short-term bit rate for the signalcoefficients. Case 3 (HIGH. LOW) and Case 1 (HIGH, HIGH) are identical,with the exception that they have different values for the lower limitof the target short-term bit rate for the signal coefficients.Accordingly, given n and m used for the previous frame:

-   -   1. Calculate S(c(m)), the percentage of the frame classified as        signal, based on the characteristics of the frame.    -   2. Predict the required bits to quantize the signal in the        current frame based on the linear model given in equation (1)        above, using S(c(m)) calculated in (1), A(n), and B(n).    -   3. Conditional processing step:

if the (LOW, LOW) case applies: do { if m < MAX_M m++; else end loopafter this iteration end Repeat Steps 1 and 2 with the new parameter m(and therefore S(c(m)). if predicted short term bit rate for signal <lower limit of target short term bit rate for signal and n < MAX_N n++;if further from target than before n−−; (use results with previous n)end loop after this iteration end end } while (not end loop and(predicted short term bit rate for signal < lower limit of target shortterm bit rate for signal) and (m < MAX_M or n < MAX_n)) end if the(HIGH, HIGH) case applies: do { if m < MIN_M m−−; else end loop afterthis iteration end Repeat Steps 1 and 2 with the new parameter m (andtherefore S(c(m)). if predicted short term bit rate for signal > upperlimit of target short term bit rate for signal and n > MIN_N n−−; iffurther from target than before n++; (use results with previous n) endloop after this iteration end end } while (not end loop and (predictedshort term bit rate for signal > upper limit of target short term bitrate for signal) and (m > MIN_M or n > MIN_n)) end

In this implementation, additional information about which set ofquantization parameters is chosen may be encoded.

Bit-Stream Formatting 124. The indices output by the quantizationfunction 108 and the Stochastic Noise Analysis function 110 areformatted into a suitable bit-stream form by the bit-stream formattingfunction 114. The output information may also include zone indices toindicate the location of the quantization and stochastic noise analysisindices, rate control information, best basis tree information, and anynormalization factors.

In the preferred embodiment, the format is the “ART” multimedia formatused by America Online and further described in U.S. patent applicationSer. No. 08/866,857, filed May 30, 1997, entitled “Encapsulated Documentand Format System”, assigned to the assignee of the present inventionand hereby incorporated by reference. However, other formats may beused, in known fashion. Formatting may include such information asidentification fields, field definitions, error detection and correctiondata, version information, etc.

The formatted bit-stream represents a compressed audio file that maythen be transmitted over a channel, such as the Internet, or stored on amedium, such as a magnetic or optical data storage disk.

Audio Decoding

FIG. 3 is a block diagram of a preferred general purpose audio decodingsystem in accordance with the invention. The preferred audio decodingsystem may be implemented in software or hardware, and comprises 7 majorfunctional blocks, 200-212, which are described below.

Bit-Stream Decoding 200.

An incoming bit-stream previously generated by an audio encoder inaccordance with the invention is coupled to a bit-stream decodingfunction 200. The decoding function 200 simply disassembles the receivedbinary data into the original audio data, separating out thequantization indices and Stochastic Noise Analysis indices intocorresponding signal and noise energy values, in known fashion.

Stochastic Noise Synthesis 202.

The Stochastic Noise Analysis indices are applied to a Stochastic NoiseSynthesis function 202. As discussed above, there are two preferredimplementations of the stochastic noise synthesis. Given coded spectralenergy for each frequency band, one can synthesize the stochastic noisein either the spectral domain or the time-domain for each of the residuesub-frames.

The spectral domain approaches generate pseudo-random numbers, which arescaled by the residue energy level in each frequency band. These scaledrandom numbers for each band are used as the synthesized DCT or FFTcoefficients. Then, the synthesized coefficients are inverselytransformed to form a time-domain spectrally colored noise signal. Thistechnique is lower in computational complexity than its time-domaincounterpart, and is useful when the residue sub-frame sizes are small.

The time-domain technique involves a filter bank based noisesynthesizer. A bank of band-limited filters, one for each frequencyband, is pre-computed. The time-domain noise signal is synthesized onefrequency band at a time. The following describes the details ofsynthesizing the time-domain noise signal for one frequency band:

-   -   1. A random number generator is used to generate white noise.    -   2. The white noise signal is fed through the band-limited filter        to produce the desired spectrally colored stochastic noise for        the given frequency band.    -   3. For each frequency band, the noise gain curve for the entire        coding frame is determined by interpolating the encoded residue        energy levels among residue sub-frames and between audio coding        frames. Because of the interpolation, such a noise gain curve is        continuous. This continuity is an additional advantage of the        time-domain-based technique.    -   4. Finally, the gain curve is applied to the spectrally colored        noise signal.

Steps 1 and 2 can be pre-computed, thereby eliminating the need forimplementing these steps during the decoding process. Computationalcomplexity can therefore be reduced.

Inverse Quantization 204.

The quantization indices are applied to an inverse quantization function204 to generate signal coefficients. As in the case of quantization ofthe extended best basis tree, the de-quantization process is carried outfor each of the best basis trees for each sub-frame. The preferredalgorithm for de-quantization of a best basis tree follows:

d = maximum depth of time-splitting for the best basis tree in questionmaxWidth = 2{circumflex over ( )}D−1; read maxWidth bits from bit-streamto code(1:maxWidth); (code = quantized bit-stream) btree =zeros(2{circumflex over ( )}(D+1)−1, 1); btree(1) = code(1); index = 1;for i = 0:d−2, nP = 2{circumflex over ( )}i; for b = 0:nP−1, ifbtree(nP+b) == 1, btree(2*(nP+b) + (0:1)) = code(index+(1:2)); index =index + 2; end end end code = code(1:i); (actual bit used is i) rewindbit pointer for the bit-stream by (maxWidth − i) bits.

The preferred de-quantization algorithm for the signal components is astraightforward application of ASVQ type IV de-quantization described inallowed U.S. patent application Ser. No. 08/958,567 referenced above.

Inverse Transform 206.

The signal coefficients are applied to an inverse transform function 206to generate a time-domain reconstructed signal waveform. In thisexample, the adaptive cosine synthesis is similar to its counterpart inCPT with one additional step that converts the extended best basis tree(2-D array in general) into the combined best basis tree (1-D array).Then the cosine packet synthesis is carried out for the inversetransform. Details follow:

-   -   1. Pre-calculate the bell window functions, by and bm, as in CPT        Step 1.    -   2. Join the extended best basis tree, btrees, into a combined        best basis tree, btree, a reverse of the split operation carried        out in ACPT Step 6:

if PRE-SPLIT_NOT_REQUIRED, btree = btrees; else nP1 = 2{circumflex over( )}D1; btree = zeros(2{circumflex over ( )}(D+1)−1. 1); btree(1:nP1−1)= ones(nP1−1,1); index = nP1; d2 = D2−D1; for i = 0:d2−1, for j = 1:nP1,for k = 2{circumflex over ( )}i−1 + (1:2{circumflex over ( )}i),btree(index) = btrees(k, j); index = index+1; end end end end

-   -   3. Perform cosine packet synthesis to recover the time-domain        signal, y, from the optimal cosine packet coefficients, opkt:

m = N / 2{circumflex over ( )}(D+1); y = zeros(N, 1); stack =zeros(2{circumflex over ( )}D+1, 2); k = 1; while k > 0, d = stack(k,1); b = stack(k, 2); k = k − 1; nP = 2{circumflex over ( )}d; Nj = N /nP; i = nP + b; if btree(i) == 0, ind = b * Nj + (1:Nj); xlcr =sqrt(2/Nj) * dct4(opkt(ind)); xc = xlcr; xl = zeros(Nj, 1); xr =zeros(Nj, 1); ind1 = 1:m; ind2 = Nj+1 − ind1; xc(ind1) = bp .*xlcr(ind1); xc(ind2) = bp .* xlcr(ind2); xl(ind2) = bm .* xlcr(ind1);xr(ind1) = −bm .* xlcr(ind2); y(ind) = y(ind) + xc; if b == 0, y(ind1) =y(ind1) + xc(ind1) .* (1−bp) ./ bp; else y(ind−Nj) = y(ind−Nj) + xl; endif b < nP−1, y(ind+Nj) = y(ind+Nj) + xr; else y(ind2+N−Nj) =y(ind2+N−Nj) + xc(ind2) .* (1−bpj ./ bp; end; else k = k+1; stack(k, :)= [d+1 2*b]; k = k+1; stack(k, :) = [d+1 2*b+1]; end; end

Renormalization 208.

The time-domain reconstructed signal and synthesized stochastic noisesignal, from the inverse adaptive cosine packet synthesis function 206and the stochastic noise synthesis function 202, respectively, arecombined to form the complete reconstructed signal. The reconstructedsignal is then optionally multiplied by the encoded scalar normalizationfactor in a renormalization function 208.

Boundary Synthesis 210.

In the decoder, the boundary synthesis function 210 constitutes the lastfunctional block before any time-domain post-processing (including butnot limited to soft clipping, scaling, and re-sampling). Boundarysynthesis is illustrated in the bottom (Decode) portion of FIG. 4. Inthe boundary synthesis component 210, a synthesis history buffer(HB_(D)) is maintained for the purpose of boundary interpolation. Thesize of this history (sHBD) is a fraction of the size of the analysishistory buffer (sHB_(E)), namely,

-   -   sHB_(D)=R_(D)*sHB_(E)=R_(D)*R_(E)*Ns, where, Ns is the number of        samples in a coding frame.

Consider one coding frame of Ns samples. Label them S[i], where i=0, 1,2, . . . , Ns. The synthesis history buffer keeps the sHB_(D) samplesfrom the last coding frame, starting at sample number Ns−sHBE/2−sHBD/2.The system takes Ns−sHB_(E) samples from the synthesized time-domainsignal (from the renormalization block), starting at sample numbersHB_(E)/2−sHB_(D/)2.

These Ns−sHB_(E) samples are called the pre-interpolation output data.The first sHBD samples of the pre-interpolation output data overlap withthe samples kept in the synthesis history buffer in time. Therefore, asimple interpolation (e.g., linear interpolation) is used to reduce theboundary discontinuity. After the first sHB_(D) samples areinterpolated, the Ns−sHB_(E) output data is then sent to the nextfunctional block (in this embodiment, soft clipping 212). The synthesishistory buffer is subsequently updated by the sHB_(D) samples from thecurrent synthesis frame, starting at sample numberNs−sHB_(E)/2−sHB_(D/)2.

The resulting codec latency is simply given by the following formula,

latency=(sHB _(E) +sHB _(D))/2=R _(E)*(1+R _(D))*Ns/2(samples).

-   -   which is a small fraction of the audio coding frame. Since the        latency is given in samples, higher intrinsic audio sampling        rate generally implies lower codec latency.

Soft Clipping 212.

In the preferred embodiment, the output of the boundary synthesiscomponent 210 is applied to a soft clipping component 212. Signalsaturation in low bit-rate audio compression due to lossy algorithms isa significant source of audible distortion if a simple and naive “hardclipping” mechanism is used to remove them. Soft clipping reducesspectral distortion when compared to the conventional “hard clipping”technique. The preferred soft clipping algorithm is described in allowedU.S. patent application Ser. No. 08/958,567 referenced above.

Computer Implementation

The invention may be implemented in hardware or software, or acombination of both (e.g., programmable logic arrays). Unless otherwisespecified, the algorithms included as part of the invention are notinherently related to any particular computer or other apparatus. Inparticular, various general purpose machines may be used with programswritten in accordance with the teachings herein, or it may be moreconvenient to construct more specialized apparatus to perform therequired method steps. However, preferably, the invention is implementedin one or more computer programs executing on programmable systems eachcomprising at least one processor, at least one data storage system(including volatile and non-volatile memory and/or storage elements), atleast one input device, and at least one output device. The program codeis executed on the processors to perform the functions described herein.

Each such program may be implemented in any desired computer language(including but not limited to machine, assembly, and high level logical,procedural, or object oriented programming languages) to communicatewith a computer system. In any case, the language may be a compiled orinterpreted language.

Each such computer program is preferably stored on a storage media ordevice (e.g., ROM, CD-ROM, or magnetic or optical media) readable by ageneral or special purpose programmable computer, for configuring andoperating the computer when the storage media or device is read by thecomputer to perform the procedures described herein. The inventivesystem may also be considered to be implemented as a computer-readablestorage medium, configured with a computer program, where the storagemedium so configured causes a computer to operate in a specific andpredefined manner to perform the functions described herein.

REFERENCES

-   M. Bosi, et al., “ISO/IEC MPEG-2 advanced audio coding”, Journal of    the Audio Engineering Society, vol. 45, no. 10, pp. 789-812, October    1997.-   S. Mallat, “A theory for multiresolution signal decomposition: The    wavelet representation”, IEEE Trans. Patt. Anal. Mach. Intell.,    vol. 11. pp. 674-693, July 1989.-   R. R. Coifman and M. V. Wickerhauser, “Entropy-based algorithms for    best basis selection”, IEEE Trans. Inform. Theory, Special Issue on    Wavelet Transforms and Multires. Signal Anal., vol. 38. pp. 713-718,    March 1992.-   M. V. Wickerhauser. “Acoustic signal compression with wavelet    packets”, in Wavelets: A Tutorial in Theory and Applications, C. K.    Chui, Ed. New York: Academic, 1992, pp. 679-700.-   C. Herley, J. Kovacevic. K. Ramchandran, and M. Vetterli, “Tilings    of the Time-Frequency Plane: Construction of Arbitrary Orthogonal    Bases and Fast Tiling Algorithms”, IEEE Trans. on Signal Processing,    vol. 41, No. 12, pp. 3341-3359, December 1993.

A number of embodiments of the present invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, some of the steps of various of the algorithms may be orderindependent, and thus may be executed in an order other than asdescribed above. As another example, although the preferred embodimentsuse vector quantization, scalar quantization may be used if desired inappropriate circumstances. Accordingly, other embodiments are within thescope of the following claims.

What is claimed is:
 1. A method for ultra-low latency compression anddecompression for a general-purpose audio input signal, including:formatting the audio input signal into a plurality of time-domain blockshaving boundaries; forming an overlapping time-domain block byprepending a fraction of a previous time-domain block to the currenttime-domain block; transforming each time-domain block to a transformdomain block comprising a plurality of coefficients; partitioning thecoefficients of each transform domain block into signal coefficients andresidue coefficients; quantizing the signal coefficients for eachtransform domain block and generating signal quantization indicesindicative of such quantization; modeling the residue coefficients foreach transform domain block as stochastic noise and generating residuequantization indices indicative of such quantization; formatting thesignal quantization indices and the residue quantization indices foreach transform domain block as an output bit-stream; decoding the outputbit stream into quantization indices and residue quantization indices;applying an inverse quantization algorithm to the quantization indicesto generate signal coefficients; applying an inverse transform to thesignal coefficients to generate a time-domain reconstructed signalwaveform; applying a stochastic noise synthesis algorithm to the residuequantization indices to generate a time-domain reconstructed residuewaveform; combining the reconstructed signal waveform and thereconstructed residue waveform as a reconstructed input signal waveformblock; and applying a boundary synthesis algorithm to the reconstructedinput signal waveform block to generate an output signal havingsubstantially reduced boundary discontinuities.
 2. A computer program,residing on a computer-readable medium, for ultra-low latencycompression and decompression for a general-purpose audio input signal,the computer program comprising instructions for causing a computer to:format the audio input signal into a plurality of time-domain blockshaving boundaries; form an overlapping time-domain block by prepending afraction of a previous time-domain block to the current time-domainblock; transform each time-domain block to a transform domain blockcomprising a plurality of coefficients; partition the coefficients ofeach transform domain block into signal coefficients and residuecoefficients; quantize the signal coefficients for each transform domainblock and generate signal quantization indices indicative of suchquantization; model the residue coefficients for each transform domainblock as stochastic noise and generate residue quantization indicesindicative of such quantization; format the signal quantization indicesand the residue quantization indices for each transform domain block asan output bit-stream; decode the output bit stream into quantizationindices and residue quantization indices; apply an inverse quantizationalgorithm to the quantization indices to generate signal coefficients;apply an inverse transform to the signal coefficients to generate atime-domain reconstructed signal waveform; apply a stochastic noisesynthesis algorithm to the residue quantization indices to generate atime-domain reconstructed residue waveform; combine the reconstructedsignal waveform and the reconstructed residue waveform as areconstructed input signal waveform block; and apply a boundarysynthesis algorithm to the reconstructed input signal waveform block togenerate an output signal having substantially reduced boundarydiscontinuities.
 3. A system for ultra-low latency compression anddecompression for a general-purpose audio input signal, including: meansfor formatting the audio input signal into a plurality of time-domainblocks having boundaries; means for forming an overlapping time-domainblock by prepending a fraction of a previous time-domain block to thecurrent time-domain block; means for transforming each time-domain blockto a transform domain block comprising a plurality of coefficients;means for partitioning the coefficients of each transform domain blockinto signal coefficients and residue coefficients; means for quantizingthe signal coefficients for each transform domain block and generatingsignal quantization indices indicative of such quantization; means formodeling the residue coefficients for each transform domain block asstochastic noise and generating residue quantization indices indicativeof such quantization; means for formatting the signal quantizationindices and the residue quantization indices for each transform domainblock as an output bit-stream; means for decoding the output bit streaminto quantization indices and residue quantization indices; means forapplying an inverse quantization algorithm to the quantization indicesto generate signal coefficients; means for applying an inverse transformto the signal coefficients to generate a time-domain reconstructedsignal waveform; means for applying a stochastic noise synthesisalgorithm to the residue quantization indices to generate a time-domainreconstructed residue waveform; means for combining the reconstructedsignal waveform and the reconstructed residue waveform as areconstructed input signal waveform block; and means for applying aboundary synthesis algorithm to the reconstructed input signal waveformblock to generate an output signal having substantially reduced boundarydiscontinuities.